// 1.数字枚举
enum num {
  first,
  second,
}

// 2.字符串枚举
enum Message {
  Error = 'sorry, ',
  Success = 'sucess',
  hello = Error,
}
// 3.异构枚举（不建议使用）
enum yigou {
  Error = 1,
  Success = 'sucess',
}

// 4. 枚举元素作为类型使用
// 满足以下条件，可以作为类型来使用
// 4.1 enum E {A}
// 4.1 enum E {A="a"}
// 4.1 enum E {A = 1}

// 5.联合枚举类型
enum Status {
  off,
  on,
}
interface Light {
  status: Status;
}
const light: Light = {
  status: Status.on,
};

// 6.运行时枚举类型

// 7.const enum
// attention 与普通枚举类型的区别是 编译后不再创建一个枚举对象
const enum Animal {
  Dog = 1,
}

const a = Animal.Dog; // 编译后直接就是  const  a =1 ，而不是 将Animal变成一个真真实实的对像，然后再从这个对象中取值
